96 research outputs found
Inductive types in the Calculus of Algebraic Constructions
In a previous work, we proved that an important part of the Calculus of
Inductive Constructions (CIC), the basis of the Coq proof assistant, can be
seen as a Calculus of Algebraic Constructions (CAC), an extension of the
Calculus of Constructions with functions and predicates defined by higher-order
rewrite rules. In this paper, we prove that almost all CIC can be seen as a
CAC, and that it can be further extended with non-strictly positive types and
inductive-recursive types together with non-free constructors and
pattern-matching on defined symbols.Comment: Journal version of TLCA'0
Computability Closure: Ten Years Later
The notion of computability closure has been introduced for proving the
termination of higher-order rewriting with first-order matching by Jean-Pierre
Jouannaud and Mitsuhiro Okada in a 1997 draft which later served as a basis for
the author's PhD. In this paper, we show how this notion can also be used for
dealing with beta-normalized rewriting with matching modulo beta-eta (on
patterns \`a la Miller), rewriting with matching modulo some equational theory,
and higher-order data types (types with constructors having functional
recursive arguments). Finally, we show how the computability closure can easily
be turned into a reduction ordering which, in the higher-order case, contains
Jean-Pierre Jouannaud and Albert Rubio's higher-order recursive path ordering
and, in the first-order case, is equal to the usual first-order recursive path
ordering
(HO)RPO Revisited
The notion of computability closure has been introduced for proving the
termination of the combination of higher-order rewriting and beta-reduction. It
is also used for strengthening the higher-order recursive path ordering. In the
present paper, we study in more details the relations between the computability
closure and the (higher-order) recursive path ordering. We show that the
first-order recursive path ordering is equal to an ordering naturally defined
from the computability closure. In the higher-order case, we get an ordering
containing the higher-order recursive path ordering whose well-foundedness
relies on the correctness of the computability closure. This provides a simple
way to extend the higher-order recursive path ordering to richer type systems
Termination of rewrite relations on -terms based on Girard's notion of reducibility
In this paper, we show how to extend the notion of reducibility introduced by
Girard for proving the termination of -reduction in the polymorphic
-calculus, to prove the termination of various kinds of rewrite
relations on -terms, including rewriting modulo some equational theory
and rewriting with matching modulo , by using the notion of
computability closure. This provides a powerful termination criterion for
various higher-order rewriting frameworks, including Klop's Combinatory
Reductions Systems with simple types and Nipkow's Higher-order Rewrite Systems
A point on fixpoints in posets
Let be a {\em non-empty strictly inductive poset}, that is, a
non-empty partially ordered set such that every non-empty chain has a least
upper bound lub, a chain being a subset of totally ordered by
. We are interested in sufficient conditions such that, given an element
and a function f:X\a X, there is some ordinal such that
, where is the transfinite sequence of iterates of
starting from (implying that is a fixpoint of ):
\begin{itemize}\itemsep=0mm \item \item a_l=\lub\{a_k\mid k
\textless{} l\} if is a limit ordinal, i.e. \end{itemize}
This note summarizes known results about this problem and provides a slight
generalization of some of them
Definitions by Rewriting in the Calculus of Constructions
The main novelty of this paper is to consider an extension of the Calculus of
Constructions where predicates can be defined with a general form of rewrite
rules. We prove the strong normalization of the reduction relation generated by
the beta-rule and the user-defined rules under some general syntactic
conditions including confluence. As examples, we show that two important
systems satisfy these conditions: a sub-system of the Calculus of Inductive
Constructions which is the basis of the proof assistant Coq, and the Natural
Deduction Modulo a large class of equational theories.Comment: Best student paper (Kleene Award
Combining typing and size constraints for checking the termination of higher-order conditional rewrite systems
In a previous work, the first author extended to higher-order rewriting and
dependent types the use of size annotations in types, a termination proof
technique called type or size based termination and initially developed for
ML-like programs. Here, we go one step further by considering conditional
rewriting and explicit quantifications and constraints on size annotations.
This allows to describe more precisely how the size of the output of a function
depends on the size of its inputs. Hence, we can check the termination of more
functions. We first give a general type-checking algorithm based on constraint
solving. Then, we give a termination criterion with constraints in Presburger
arithmetic. To our knowledge, this is the first termination criterion for
higher-order conditional rewriting taking into account the conditions in
termination
Automated verification of termination certificates
In order to increase user confidence, many automated theorem provers provide
certificates that can be independently verified. In this paper, we report on
our progress in developing a standalone tool for checking the correctness of
certificates for the termination of term rewrite systems, and formally proving
its correctness in the proof assistant Coq. To this end, we use the extraction
mechanism of Coq and the library on rewriting theory and termination called
CoLoR
Elements of mathematics and logic for computer program analysis
1 Introduction 2 Induction and sequences 2.1 Induction on natural numbers 2.2 Words and sequences 2.3 A digression on set theory 2.4 Induction on words 2.5 Grammar rules and string rewriting 3 Terms 3.1 Definition of terms 3.2 Knaster-Tarski's fixpoint theorem (1927) 3.3 Kleene's fixpoint theorem (1952?) 3.4 Pattern matching and term rewriting 3.5 Models of a term algebra 4 Lambda-calculus 4.1 Definition of λ-calculus 4.2 Church-computable functions 4.3 Kleene-computable functions 4.4 Turing-computable functions 5 Simply-typed lambda-calculus 5.1 Curry-style simply-typed λ-calculus . 5.2 Unification 5.3 Type inference 5.4 Church-style simply-typed λ-calculus 6 First-order logic 6.1 Formulas and truth 6.2 Provability and deduction systems 6.3 Proof terms and Curry-Howard correspondence 7 To go further 8 Solutions to exercises 8.1 Section 2: Induction and sequences 8.2 Section 3: Terms 8.3 Section 4: Lambda-calculus 8.4 Section 5: Simply-typed lambda-calculus 8.5 Section 6: First-order logicMasterIn order to be able to rigorously prove the correctness of a program, one must have a formal definition of: what is a program, syntactically; how it is evaluated, that is, what is its semantics; how to formulate the properties we are interested in; and how to prove them. All this requires to understand some basic mathematical notions like induction, terms, formulas, deduction, etc. These notes are intended to give an introduction to some of these notions
- …